<?php

/*
 * Pagina Noticia
 * @Autor: Andrés Ubilla - Inicial.cl
 */

class EscribirRelato extends TPage {

    const ULTIMOS_RELATOS = 4;

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarIntefaz();
        }
    }

    private function actualizarIntefaz() {
        $oUsuarioLogged = Util::getSession("USUARIO");
        if (!Util::isNullOrEmpty($oUsuarioLogged)) {
            $arr = $this->obtenerDatos();
            $this->iniciarControles($arr);
        } else {
            $this->Response->Redirect("index.php?page=Index.Home");
        }
    }

    private function obtenerDatos() {
        $arr = array();
        $arg = Util::isNull($this->Request["a"], "-1");
        $id = Util::desencriptarUrl($arg, "id");
        $redireccionar = false;
        if (!Util::isNullOrEmpty($id)) {
            if (is_numeric($id) && $id > 0) {
                try {
                    $this->setViewState("ID", $id);
                    $oEscort = new Escort();
                    $oEscort = DDPEntity::getEscort($id);
                    $oRelatoBLL = new Relato_escortBLL();
                    $arr[self::ULTIMOS_RELATOS] = $oRelatoBLL->listarUltimas();
                    $this->iniciarControlesRelato($oEscort);
                    return $arr;
                } catch (Exception $e) {
                    Util::enviarException("EscribirRelato.obtenerDatos", $e->getMessage());
                }
            } else {
                $redireccionar = true;
            }
        } else {
            $redireccionar = true;
        }
        if ($redireccionar) {
            $this->Response->Redirect("index.php");
        }
        return $arr;
    }

    private function iniciarControles($arr) {
        if (count($arr) > 0) {
            $this->iniciarControlesUltimosRelatos($arr[self::ULTIMOS_RELATOS]);
        }
    }

    private function iniciarControlesUltimosRelatos($arr) {
        $template = "<li class='li-side'>
                        <img class='user-ul-side' <img src='{#IMG}' alt='' />
                        <span class='fecha-ul-side'>{#FECHA_EXTENDIDA}</span>
                        <span class='sidebar-post'><a href='{#LINK}'>{#TITULO}</a><br>
                            <a class='linkSide' href='blog-single.html' title='Seguir leyendo...'>{#MENSAJE}<i class='icon-share-alt icon-white'></i></a>
                        </span>
                    </li>";
        $templateAux = "";
        $html = "";
        $fecha = "";
        $path = $this->Page->Theme->BaseUrl . "/images/avatar/";
        if (count($arr) > 0) {
            foreach ($arr as $oRelato) {
                $templateAux = $template;
                $templateAux = str_replace("{#IMG}", $path . (Util::isNullOrEmpty($oRelato->getRutaAvatar()) ? "dios.jpg" : $oRelato->getRutaAvatar()), $templateAux);
                $templateAux = str_replace("{#FECHA_EXTENDIDA}", Util::obtenerFechaExtendida($oRelato->getFecha()), $templateAux);
                $templateAux = str_replace("{#TITULO}", $oRelato->getTitulo(), $templateAux);
                $comentario = $oRelato->getMensaje();
                if (strlen($comentario) > 140) {
                    $comentario = substr($comentario, 0, 140);
                }
                $templateAux = str_replace("{#MENSAJE}", $comentario, $templateAux);
                $templateAux = str_replace("{#LINK}", Util::encriptarUrl(array("id" => $oRelato->getId())), $templateAux);

                $html .= $templateAux;
            }
        }
        $this->litUltimosRelatos->Text = $html;
    }

    private function iniciarControlesRelato($oEscort) {
        try {
            $this->Page->Title = "Escribir relato de " . $oEscort->getNombre() . " - Diosas del Placer";
            $this->litTitulo->Text = "<h3 style='float: left;'>" . $oEscort->getNombre() . "</h3>";
            $arrRecurso = DDPEntity::getRecursoEscort($oEscort->getId(), 1, "DESTACADA");
            $path = Util::obtenerPathRecursoEscort($this->Page, Tipo_recurso::IMAGEN, Tipo_recurso::PATH_IMAGEN_DESTACADAS);
            foreach ($arrRecurso as $row) {
                $this->litImagen->Text = "<img class='img-polaroid' src='" . $path . $row->getSrc() . "' />";
            }
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }

    public function btnEscribirRelato($sender, $param) {
        $oUsuarioLogged = Util::getSession("USUARIO");
        $idEscort = $this->getViewState("ID");
        $arrRecurso = DDPEntity::getRecursoEscort($idEscort, 1, "DESTACADA");
        $oRelato = new Relato_escort();
        $oRelato->setFecha(Util::fechaNormalADateTime(Util::getFechaHoraActual()));
        $oRelato->setIdEscort($idEscort);
        $oRelato->setIdUsuario($oUsuarioLogged->getId());
        $oRelato->setMensaje(Util::reemplazarSaltoLineaToBR($this->txtRelato->Text));
        $oRelato->setIdEstado(Estado::HABILITADO);
        foreach ($arrRecurso as $row) {
            $oRelato->setSrc($row->getSrc());
        }        
        $oRelato->setTitulo($this->txtTitulo->Text);
        $oRelatoBLL = new Relato_escortBLL();
        $idRelato = $oRelatoBLL->grabar($oRelato);
        if (is_int($idRelato) && $idRelato > 0) {
            $arg = Util::encriptarUrl(array("id" => $idRelato));
            $url = "index.php?page=Index.Relato&a=" . $arg;
            $this->thRelatoPublicado->Value = 1;
            $this->litMensaje->Text = "<div class='mensaje span12'>
                                        <p><i class='icon-exclamation-sign icon-white'></i> El relato ha sido publicado exitosamente. 
                                        Puedes verlo directamente <strong><a href='" . $url . "'>aqu&iacute;</strong></p>
                                    </div>";            
        }
    }

}

?>
